package com.jsbs.iam.user.service;

import com.github.pagehelper.PageInfo;
import com.jsbs.iam.common.core.dto.Result;
import com.jsbs.iam.user.param.AdminRoleParam;
import com.jsbs.iam.user.vo.AdminRoleInfoVo;
import com.jsbs.iam.user.vo.AdminRoleStatusVo;
import com.jsbs.iam.user.vo.AdminRoleUserVo;
import com.jsbs.iam.user.vo.AdminUserRoleVo;

import java.util.List;

public interface IamAdminRoleService {

    /**
     * 功能描述：分页查询管理员角色列表
     * @param adminRoleParam
     * @return
     */
    PageInfo<AdminRoleInfoVo> queryForPage(AdminRoleParam adminRoleParam);

    /**
     * 功能描述：保存管理员角色
     * @param adminRoleInfoVo
     * @param userName
     */
    Result saveAdminRole(AdminRoleInfoVo adminRoleInfoVo, String userName);

    /**
     * 功能描述：管理员角色启用/停用
     * @param adminRoleStatusVo
     * @param userName
     * @return
     */
    Result adminRoleStatusEdit(AdminRoleStatusVo adminRoleStatusVo, String userName);

    /**
     * 功能描述：批量删除管理员角色
     * @param adminRoleStatusVo
     * @param userName
     * @return
     */
    Result adminRoleBatchDelete(AdminRoleStatusVo adminRoleStatusVo, String userName);

    /**
     * 功能描述：绑定解绑用户
     * @param adminRoleUserVo
     * @param userName
     * @return
     */
    Result adminRoleUserBind(AdminRoleUserVo adminRoleUserVo, String userName);

    /**
     * 功能描述：根据用户信息获取对应的管理员角色
     * @param account
     * @return
     */
    List<AdminUserRoleVo> getAdminRoleByUser(String account);
}
